Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Sep 8, 2025

Bumps actions/setup-node from 3 to 5.

Release notes

Sourced from actions/setup-node's releases.

v5.0.0

What's Changed

Breaking Changes

This update, introduces automatic caching when a valid packageManager field is present in your package.json. This aims to improve workflow performance and make dependency management more seamless. To disable this automatic caching, set package-manager-cache: false

steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v5
  with:
    package-manager-cache: false

Make sure your runner is on version v2.327.1 or later to ensure compatibility with this release. See Release Notes

Dependency Upgrades

New Contributors

Full Changelog: actions/setup-node@v4...v5.0.0

v4.4.0

What's Changed

Bug fixes:

Enhancement:

Dependency update:

New Contributors

Full Changelogactions/setup-node@v4...v4.4.0

... (truncated)

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 5.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](actions/setup-node@v3...v5)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Sep 8, 2025
@vercel
Copy link

vercel bot commented Sep 8, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
next-learn-dashboard Error Error Sep 8, 2025 11:08pm
next-learn-starter Ready Ready Preview Comment Sep 8, 2025 11:08pm
next-seo-starter Ready Ready Preview Comment Sep 8, 2025 11:08pm

uses: pnpm/action-setup@v3
- name: Set node version
uses: actions/setup-node@v3
uses: actions/setup-node@v5
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The upgrade to actions/setup-node@v5 enables automatic package manager caching, but the workflow still has manual caching steps that will conflict with the new automatic caching.

View Details
📝 Patch Details
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index 3858b42..2e16082 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -17,14 +17,7 @@ jobs:
         with:
           cache: 'pnpm'
           node-version: '20'
-      - name: Cache node_modules
-        id: node-modules-cache
-        uses: actions/cache@v4
-        with:
-          path: '**/node_modules'
-          key: node-modules-cache-${{ hashFiles('**/pnpm-lock.yaml') }}
       - name: Install dependencies
-        if: steps.node-modules-cache.outputs.cache-hit != 'true'
         run: pnpm install
       - name: Run tests
         run: pnpm test

Analysis

Caching Conflict in GitHub Actions Workflow

Issue Summary

The GitHub Actions workflow in .github/workflows/test.yml contains a caching configuration that creates redundancy and potential conflicts due to the upgrade to actions/setup-node@v5. This version introduced automatic package manager caching that overlaps with the existing manual caching implementation.

Root Cause Analysis

Automatic Caching in setup-node@v5

The v5.0.0 release of actions/setup-node introduced a breaking change: automatic caching when a valid packageManager field is present in package.json. This project's package.json contains:

{
  "packageManager": "pnpm@8.7.0"
}

Current Workflow Configuration Issues

The workflow currently employs a dual caching approach:

  1. Automatic caching (line 18): cache: 'pnpm' parameter in setup-node@v5
  2. Manual caching (lines 20-27): Explicit actions/cache@v4 step with conditional install logic

This creates several problems:

  1. Redundant operations: Both caching mechanisms target dependency management for the same package manager
  2. Cache key conflicts: Different caching strategies may use incompatible cache keys
  3. Workflow logic issues: The conditional install step (if: steps.node-modules-cache.outputs.cache-hit != 'true') assumes manual cache control, but automatic caching may interfere with this logic
  4. Resource waste: Unnecessary CI time spent on duplicate caching operations

Technical Details

Setup-node@v5 Caching Behavior

According to the action specification, setup-node@v5 includes:

  • package-manager-cache: Defaults to true, enables automatic caching when packageManager field is detected
  • cache: Specifies package manager for built-in caching functionality
  • Uses actions/cache internally with optimized cache keys

The automatic caching targets package manager stores (like pnpm store), while the manual caching targets node_modules directories. However, both affect the same dependency installation process.

Impact Assessment

Performance Impact

  • Increased CI time: Redundant cache operations add overhead
  • Cache storage usage: Multiple cache entries for the same dependencies
  • Network overhead: Potential for unnecessary cache uploads/downloads

Reliability Impact

  • Unpredictable behavior: Conditional logic may not work as expected with automatic caching
  • Cache invalidation issues: Different caching strategies may have different invalidation triggers

Recommended Solution

Choose one of two approaches:

Option 1: Use Automatic Caching (Recommended)

Remove manual caching and rely on setup-node@v5's built-in functionality:

- name: Set node version
  uses: actions/setup-node@v5
  with:
    cache: 'pnpm'
    node-version: '20'
- name: Install dependencies
  run: pnpm install

Option 2: Disable Automatic Caching

Keep manual caching and disable the automatic behavior:

- name: Set node version
  uses: actions/setup-node@v5
  with:
    package-manager-cache: false
    node-version: '20'

The automatic caching approach (Option 1) is recommended as it's simpler, maintained by GitHub, and optimized for the detected package manager.

References

@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Oct 20, 2025

Superseded by #1116.

@dependabot dependabot bot closed this Oct 20, 2025
@dependabot dependabot bot deleted the dependabot/github_actions/actions/setup-node-5 branch October 20, 2025 23:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants